这里首先要感谢一下唯品会的申政同学开发出这么优秀的Redis开源迁移工具redis-migrate-tool,cachecloud迁移工具是基于它实现的,欢迎大家去star。
在使用CacheCloud数据迁移工具之前有大家必要对redis-migrate-tool有一些了解。
一、CacheCloud数据迁移工具能做什么?
1. 功能介绍
数据迁移工具可以完成如下功能:
- 支持在RDB文件、Redis Standalone、Redis Sentinel、Redis Cluster之间进行数据迁移(也可以直接是CacheCloud的应用,也就是appId),如下图所示支持任意两种类型的source和target进行数据迁移。
- 数据迁移能够保证实时性,所以如果合理使用可以基本保证一致性。(原理可以参考第二小节)
- 迁移过程可视化完成流程的控制。(操作界面流程监控等等)
二、CacheCloud数据迁移工具是如何实现的?
CacheCloud数据迁移工具底层使用的是唯品会公司开源的redis-migrate-tool,所以这里有必要对redis-migrate-tool进行简单说明:
redis-migrate-tool是用c语言开发的Redis数据迁移工具,可以做到在stadalone、sentinel、cluster、rdb(目前不支持做为target)彼此迁移数据,服务与唯品会公司数千个Redis节点,无论从数据迁移的准确性、稳定性、高效性等方面都能满足的生产环境的需求,所以CacheCloud选择它作为数据迁移的基础组件,CacheCloud通过可视化的方式完成节点数据迁移、进度查询、日志查询、配置查询、历史记录等等功能。
|
|
redis-migrate-tool是基于复制的原理,所以是实时迁移的,这点比起redis自带的redis-trib.rb的import功能要方便很多。
三、CacheCloud数据迁移工具如何部署和使用
3.1 准备迁移工具所有的机器:
- 初始化机器(和普通机器初始化没有区别),请参考相关文档
- 添加机器时候,选择机器类型时候,选择迁移工具类型。(这里建议单独使用一台机器做迁移用)
3.2 安装部署redis-migrate-tool:
将redis-migrate-tool安装在/opt/cachecloud目录下,如果想修改,请在系统配置中进行修改:
安装方法可以参考redis-migrate-tool主页或者按照如下安装:
最为重要的一步是, 注意这里的cachecloud-open是ssh的用户名
3.3 添加迁移任务:
管理员点击自己的名字就可以看到迁移工具的连接.
就可以进入迁移列表,这里记录这所有迁移任务的记录,可以做一些管理工作
点击添加新的迁移按钮
这个表单的作用非常明了,填写source和target的信息,点击验证按钮,按照通过后就开启了一个迁移的任务,然后将会再次回到迁移列表,就可以观察迁移日志、关闭迁移任务、迁移状态查询
迁移状态日志(就是redis-migrate-tool的日志)
迁移状态查询(详见redis-migrate-tool主页)
四、客户端怎么迁移
1.当迁移工作基本完成后,我们就需要迁移客户端了,为了方便演示我们假设只有两个客户端。
2.迁移第一个客户端,观察客户端是否出现异常
3.迁移第二个客户端,继续观察
4.检查source是否还有调用
5.下线source和迁移工具
五、一些建议和坑
- 安装redis-migrate-tool的目录必须使用chown修改(详见3.2)
- 尽可能单独找一台机器作为迁移机器,因为迁移的过程可能会占用机器的很多资源。
- redis-migrate-tool很具体的原理问题和细节可以到cachecloud群里找作者提问,因为唯品会已经在线上大量使用了,应该在这方面积累了很多经验和技巧。
- 迁移工具页面还有很多要优化的地方,后期会听取大家意见逐渐改善。